﻿using Hospital.API.Dto;
using Hospital.Domain;
using Hospital.ErrorCode;

namespace Hospital.API.HospitalServices.IServices
{
    public interface IDoctorServices
    {
        /// <summary>
        /// 根据ID获取医生信息
        /// </summary>
        /// <param name="id">医生ID</param>
        /// <returns>医生信息</returns>
        Task<APIResult<DoctorDto>> GetById(int id);

        /// <summary>
        /// 获取医生列表
        /// </summary>
        /// <param name="doctorQueryDto">查询条件</param>
        /// <returns>医生列表</returns>
        Task<APIResult<APIPaging<List<DoctorDto>>>> GetList(DoctorQueryDto doctorQueryDto);

        /// <summary>
        /// 获取粉丝列表
        /// </summary>
        /// <param name="fanQueryDto">查询条件</param>
        /// <returns>粉丝列表</returns>
        Task<APIResult<APIPaging<List<Fan>>>> GetFan(FanQueryDto fanQueryDto);

        /// <summary>
        /// 更新医生审核状态
        /// </summary>
        /// <param name="updateDto">更新审核状态DTO</param>
        /// <returns>更新结果</returns>
        Task<APIResult<bool>> UpdateAuditStatus(UpdateDoctorAuditStatusDto updateDto);
    }
}
